#pragma once

#include <QBaseLib.h>
#include <QFileInfo>

#define ROOT_DIR_INI 			":/res/ini/"
#define SYSTEM_DIR_INI 			"/oem/res/ini/"
#define ROOT_DIR_IMAGE			":/res/image/"
#define SYSTEM_DIR_IMAGE		"/oem/res/image/"

// 默认布局类型
#define DEFAULT_LAYOUT_TYPE 	"default"
// 布局类型后缀
#define LATPUT_TYPE_SUFFIX		"Layout"

// 默认图片目录
#define DEFAULT_IMAGE_DIR		"default/"
// 默认配置文件
#define DEFAULT_INI_PATH		"default/default.ini"

// 默认型号
#define DEFAULT_DEV_TYPE 	"default"
// 已支持型号
#define HJGM02 "HJGM02"
#define HJGM09 "HJGM09"
#define HJGM15 "HJGM15"

// 判断路径类型
typedef enum _tpathType
{
	PATH_TYPE_NONE = 0,
	PATH_TYPE_DIR,
	PATH_TYPE_FILE,

}T_pathType;

// 图片查找等级
typedef enum _tImageFindLevel
{
	IMAGE_FIND_LEVEL_NONE = 0,
	IMAGE_FIND_LOCAL_LEVEL_0 = 6, // 查找本地所有目录
	IMAGE_FIND_LOCAL_LEVEL_1 = 5, // 查找本地布局对应默认目录+图片默认目录
	IMAGE_FIND_LOCAL_LEVEL_2 = 4, // 查找本地图片默认目录
	IMAGE_FIND_LEVEL_0 = 3, // 查找app资源所有目录
	IMAGE_FIND_LEVEL_1 = 2, // 查找app资源布局对应默认目录+图片默认目录
	IMAGE_FIND_LEVEL_2 = 1, // 查找app资源图片默认目录

}T_imageFindLevel;

// 界面布局类型
typedef enum _tWidgetLayoutType
{
	WIDGET_LAYOUT_NONE = 0,
	WIDGET_LAYOUT_A = 1,	// 摄像头全屏显示，主页只显示时间，其他所有界面都全屏显示
	WIDGET_LAYOUT_B = 2,	// 主页轮播广告，摄像头在顶部居中显示，占1/3，输入界面、开门界面、呼叫界面在底部显示
	WIDGET_LAYOUT_C = 3,	// 摄像头全屏显示，主页显示设备简要信息和logo，没有输入界面
	WIDGET_LAYOUT_D = 4,	// 触屏
	WIDGET_LAYOUT_E = 5,	// 横屏显示
	WIDGET_LAYOUT_F = 6,	// 保留扩展
	WIDGET_LAYOUT_G = 7,	// 保留扩展
	WIDGET_LAYOUT_H = 8,	// 保留扩展
	WIDGET_LAYOUT_I = 9,	// 保留扩展
	WIDGET_LAYOUT_J = 10,	// 保留扩展
	WIDGET_LAYOUT_K = 11,	// 保留扩展
	WIDGET_LAYOUT_L = 12,	// 保留扩展
	WIDGET_LAYOUT_M = 13,	// 保留扩展
	WIDGET_LAYOUT_N = 14,	// 保留扩展
	WIDGET_LAYOUT_O = 15,	// 保留扩展
	WIDGET_LAYOUT_P = 16,	// 保留扩展
	WIDGET_LAYOUT_Q = 17,	// 保留扩展
	WIDGET_LAYOUT_R = 18,	// 保留扩展
	WIDGET_LAYOUT_S = 19,	// 保留扩展
	WIDGET_LAYOUT_T = 20,	// 保留扩展
	WIDGET_LAYOUT_U = 21,	// 保留扩展
	WIDGET_LAYOUT_V = 22,	// 保留扩展
	WIDGET_LAYOUT_W = 23,	// 保留扩展
	WIDGET_LAYOUT_X = 24,	// 保留扩展
	WIDGET_LAYOUT_Y = 25,	// 保留扩展
	WIDGET_LAYOUT_Z = 26,	// 保留扩展

}T_widgetLayoutType;


class QDevTypeUnified
{
public:
	// 获取布局类型
	static QString getLayoutTypeQString();
	// 获取布局类型
	static T_widgetLayoutType getLayoutTypeInt();
	// 获取设备型号
	static QString getDevType();
	// 获取配置文件
	static QString getDevIni();
	// 获取图片目录
	static QString getDevImageDir();
	// 获取图片文件全路径
	static QString getImageFullPath(const QString &fileName);
	// 获取字体大小基数
	static double getFontSizeBase();
	// 获取字体大小 通过字体等级获取字体大小
	static int getFontSize(int sizeLevel);
	// 获取图片类型
	static QString getImageType(QString image);
	/**
     * 判断目录或文件是否存在
     *
     * @param - in path:路径 type:要判断的类型
     * @note -
     * @return - true - 存在， false - 不存在
     */
	static bool PathisExist(QString path, T_pathType type);

private:
	QDevTypeUnified();
	~QDevTypeUnified();
private:
	static QString				devLayoutType;
	// 设备类型
	static QString				devType;
	// 图片目录
	static QString				devImageDir;
	// 图片目录查找等级
	static T_imageFindLevel		devImageFindLevel;
	// 配置文件
	static QString				devIni;
	// 字体大小基数
	static double				devFontSizeBase;
	// 已查找图片缓存
	static QList<QString> 		devImageList;
};
